package com.hjc.oj.service;

import com.hjc.oj.model.dto.wx.WxmpQrcodeAndUuid;
import com.hjc.oj.model.entity.User;
import com.hjc.oj.model.vo.LoginUserVO;
import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
import me.chanjar.weixin.common.error.WxErrorException;

import javax.servlet.http.HttpServletRequest;

public interface MyWxMpService {

    /***
     * 相应前端请求获取二维码URL和UUID
     * @return
     */
    WxmpQrcodeAndUuid getQrcodeAndUuid();

    /***
     * 用户扫码后的通过code 获取 微信用户信息并将信息存放到concurrenthashMap中
     */
    User wxMpGetUser(String code) throws WxErrorException;

    /***
     * 用户登录（微信公众号）
     * @param user
     * @param uuid
     * @return LoginUserVO
     */
    LoginUserVO userLoginByMp(User user, String uuid);

    /**
     * 前端轮询调用，通过uuid判断当前用户是否登录
     * @param uuid
     * @return
     */
    int wxMpUserIsLogin(String uuid,HttpServletRequest request);

    /***
     * 根据用户授权后，微信公众平台返回的code获取用户的信息
     * @param code
     * @return
     */
    User getUserInfo(String code,String state) throws WxErrorException;
}
